# -*- coding:utf-8 -*-
import jieba
import jieba.analyse
import jieba.posseg as pseg
__author__ = 'shudongma.msd(风骐)'


# 0. 不使用默认词典，改用词汇量较大的词典
jieba.set_dictionary('../resources/dict.txt.big')

# 1. 3种模式分词

'''
精确模式，试图将句子最精确地切开，适合文本分析；
全模式，把句子中所有的可以成词的词语都扫描出来, 速度非常快，但是不能解决歧义；
搜索引擎模式，在精确模式的基础上，对长词再次切分，提高召回率，适合用于搜索引擎分词。
'''

seg_list = jieba.cut("我来到北京清华大学",cut_all=True)
print "Full Mode:", "/ ".join(seg_list) #全模式

seg_list = jieba.cut("我来到北京北京清华大学",cut_all=False)
print "Default Mode:", "/ ".join(seg_list) #精确模式

seg_list = jieba.cut("他来到了网易杭研大厦") #默认是精确模式
print ", ".join(seg_list)

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所，后在日本京都大学深造") #搜索引擎模式
print ", ".join(seg_list)


# 2.添加自定义词典
'''
    文件格式
AT&T 3 nz  (词语 词频 词性)
B超 3 n
c# 3 nz
C# 3 nz
c++ 3 nz
C++ 3 nz
T恤 4 n
A座 3 n
A股 3 n
'''
jieba.load_userdict('../resources/word_dict.txt') #
# 向词典增加和删除单词
jieba.add_word('你好')
jieba.del_word('你妹')

# 3.提取特征词
'''
jieba.analyse.extract_tags(sentence,topK) #需要先import jieba.analyse
setence为待提取的文本
topK为返回几个TF/IDF权重最大的关键词，默认值为20
TFIDF的主要思想是：如果某个词或短语在一篇文章中出现的频率TF高，并且在其他文章中很少出现，则认为此词或者短语具有很好的类别区分能力，适合用来分类。
'''
res = jieba.analyse.extract_tags('我来到北京清华大学',3)
print res

# 4.词性标注
'''
    会同时打印出词性
'''
words =pseg.cut("我爱北京天安门")
for w in words:
    print w.word,w.flag

# 5.并行分词   暂不支持windows
# jieba.enable_parallel(4) # 开启并行分词模式，参数为并行进程数
# jieba.disable_parallel() # 关闭并行分词模式

# 6.Tokenize：返回词语在原文的起始位置
'''
注意，输入参数只接受unicode
'''
result = jieba.tokenize(u'永和服装饰品有限公司',mode='default')
for tk in result:
    print "word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2])